package com.demo.study.behavior.d02_command.step2;

import com.demo.study.behavior.d02_command.step2.command.AddRequirementCommand;
import com.demo.study.behavior.d02_command.step2.command.DeletePageCommand;
import com.demo.study.behavior.d02_command.step2.command.FixedCommand;
import com.demo.study.behavior.d02_command.step2.command.UpdateCodeCommand;

/**
 * 客户层，高内聚
 *
 * @author Baymax
 * @since 2022/3/20
 */
public class Client {
    public static void main(String[] args) {
        // 定义一个接口人
        Invoker invoker = new Invoker();
        System.out.println("--------------客户要增加一个需求-------------");
        // 模拟可以下需求
        Command command = new AddRequirementCommand();
        // 接口人接收到命令
        invoker.setCommand(command);
        // 执行客户的命令
        invoker.action();

        System.out.println("--------------客户要修改一个页面-------------");
        command = new DeletePageCommand();
        invoker.setCommand(command);
        invoker.action();

        System.out.println("--------------客户要修改一个功能-------------");
        command = new UpdateCodeCommand();
        invoker.setCommand(command);
        invoker.action();

        System.out.println("--------------一个入口，多个组同步操作-------------");
        command = new FixedCommand();
        invoker.setCommand(command);
        invoker.action();

    }
}
